// pages/forum/forum.js

import {
  getPostList
} from '../../api/luntan'
Page({
  /**
   * 页面的初始数据
   */
  data: {
    leftList: [],
    rightList: [],
    leftHeight: 0,
    rightHeight: 0,
  },
  //放在page构造器里面的数据，可以直接通过this访问到
  allList: [], //所有的数据
  pageNum: 1,
  finish: false,
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    wx.setTabBarStyle({
      backgroundColor: 'burlywood',
    })
    getPostList(1, 30).then(res => {
      // console.log(res.data.rows);
      //因为allList不涉及界面渲染，去设置这个值的时候不需要setData
      this.allList = res.data.rows
      this.resolveList()
    })
  },
  resolveList() {
    // debugger
    if (this.allList.length === 0) {
      //当列表长度为0，代表处理完了数据
      return
    }
    const item = this.allList.shift()
    wx.getImageInfo({
      src: item.coverImgUrl,
      success: (imgInfo) => {
        //把数据放在更低一侧，保证两侧数据不会有太大的偏差
        if (this.data.leftHeight > this.data.rightHeight) {
          //这个时候放在右侧
          this.data.rightList.push(item)
          //改变leftHeight和right的高度
          this.data.rightHeight += imgInfo.height / imgInfo.width
        } else {
          //这时放在左侧
          this.data.leftList.push(item)
          this.data.leftHeight += imgInfo.height / imgInfo.width
        }
        //处理下一个元素
        this.setData({
          rightList: this.data.rightList,
          leftList: this.data.leftList,
          rightHeight: this.data.rightHeight,
          leftHeight: this.data.leftHeight
        })
      },
      complete: () => {
        //不管图片数据获取成功还是，都要去处理下一个元素
        this.resolveList()
      }
    })
  },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnLoad: function () {

  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    wx.setTabBarStyle({
      backgroundColor: '#07817a',
    })
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if (this.finish) return
    //每次触底的时候都会执行
    // console.log(this.pageNum);
    this.pageNum++
    getPostList(this.pageNum, 30).then(res => {
      console.log(res);
      //因为allList不涉及界面渲染，去设置这个值的时候不需要setData
      this.allList = this.allList.concat(res.data.rows)
      if (this.pageNum * 50 >= res.data.total) {
        // console.log(this.pageNum);
        this.finish = true
        // console.log(this.finish);
      }
      this.resolveList()
    })
  },
  openChat(e) {
      wx.navigateTo({
        url: `/pages/chat/index?id=${e.currentTarget.dataset.id}`,
      })
  
  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '论坛',
    }
  }
})